As the volume of text-based content available continues to grow exponentially, both on the Internet and other content repositories, such as behind-the-firewall data, the importance of search engines and search technology is reinforced. Virtually every user employs one or more search engines to locate relevant content on a frequent basis. With the large quantity of material available, various tools and methods for the refinement of search engine results have been created with varying degrees of success.
The most popular search engines available primarily follow the interaction model of the user entering a set of text search terms through a search engine interface, and the text search terms are then used to extract a result set from the index created or administered by the search engine. However, one of the limitations of a purely text-based search is that if a text search term is used that can have more than one definition or meaning, the result set which is retrieved will not be as focused or relevant to the topic of interest as might be desired. An additional limitation occurs when the user enters more than one search term. Many search engines limit their interpretation of such multi-term query as a simple request to locate all documents that contain all search query terms or some logical combination or simple variation (e.g., stemming) thereof. Results of this type of search have generally been unsatisfactory for all but the most basic text document retrieval tasks.
Specifically, although meaning is communicated via words, the typical text or keyword search does not search for the meaning. The creator of the text to be searched has encoded a certain meaning inside the text. Similarly, the person initiating a search encodes desired meaning in a keyword query. The search will return the “correct” result only if both encodings coincide.